home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1996 April
/
CHIP 1996 aprilis (CD06).zip
/
CHIP_CD06.ISO
/
hypertxt.arj
/
9406
/
UC20.CD
< prev
next >
Wrap
Text File
|
1994-11-27
|
15KB
|
247 lines
@VUltra Compressor 2-vel (UC2)@N
@VDunsztolás felsôfokon@N
A tömörítés sokaknak iszonytatóan misztikus és ködös:
valami olyasmi, ami nem az egyszerû felhasználónak való.
Pedig a dolog nagyon egyszerû, és a Stacker (valamint
koppintásai) megjelenése óta teljesen automatikus is.
A tömörítés lényege az, hogy valamilyen módon a tárolandó
anyagot tömörebb, s ezáltal kevesebb helyet foglaló
formában tároljuk. Vegyük sorra a legelterjedtebb
tömörítési metódusokat, algoritmusokat!
A legegyszerûbb tömörítés során az ismétlôdéseket
rövidítjük. Például a ""Szia Pista! Szia!" jellegû szöveg
jóval tömörebb lesz ezzel a módszerrel. A tömörség itt
nyilván attól függ, milyen messzire nézünk -- azaz mekkora
távolság lehet két azonos kódsor között. Azonkívül az is
számít még, hogy milyen hosszú sorozatokat ismerünk fel.
Természetesen minél messzebbre nézünk, annál több memóriára
lesz szükség, és annál lassúbb lesz a program futása is.
Ugyanez áll a nagyon hosszú sorozatokra. Ezt a módszert
kétféleképpen fogalmazták meg a matematikusok. Az elsô az
úgynevezett futásidejû tömörítés, a második pedig a
Lempel-Ziv módszer. A futásidejû tömörítés csak a
közvetlenül egymás után található ismétlôdésekkel boldogul,
a Lempel-Ziv viszont megvalósítástól függôen nagy
távolságokról is észreveszi az ismétlôdéseket. Míg a
futásidejû tömörítést ma már senki nem használja, a
Lempel-Ziv algoritmus része szinte az összes tömörítônek.
A gyakran elôforduló byte-okat rövidebben, a ritkábban
elôforduló kódokat hosszabban tárolhatjuk. Például a magyar
nyelvû szövegek nagyon jól tömöríthetôk, ha az ""a"-t és az
""e"-t a lehetô legrövidebb módon tároljuk, míg a ""w" betû
kódja akár nagyon hosszú is lehet. Az igen terjedelmes
kódszótárt -- melyik kód helyett mi áll -- is le kell
tárolni, ezért jobb nagyobb blokkokat beolvasni, de ekkor a
sebességünk csökken. Ezt a módszer Huffman-kódolásnak
nevezik.
Létezik olyan módszer, ami elsôsorban olyan adatokon
alkalmazható, mint például egy hatalmas névsor. Ebben az
esetben az egymás után következô adatok között kevés a
különbség. îgy csak a különbségeket kell tárolni. Ezt
különbségi tömörítésnek nevezik. Itt a tömörítés szinte
csak a tömörítendô szövegtôl függ -- de sajnos ez a módszer
igen ritkán használható, mivel programjaink és adataink
általában nem ilyenek.
A programok súgói is jól tömöríthetôk. Mivel tudjuk, hogy
mely szavak fordulnak elô benne sokszor, úgynevezett
tokeneket írunk helyettük. Például ezt a cikket sokkal
rövidebben lehetne tárolni, ha a ""tömörít" betûhalmazt egy
@@ szimbólummal helyettesítenénk. Ennek a módszernek a
hatékonysága annál jobb, minél nagyobb file-ra használjuk,
és abban minél több az ismétlés. Például a file szó szinte
minden súgóban rengetegszer fordul elô, s ha ezt mondjuk
egy @@ jellel helyettesítjük, nagyon hatékony lesz a
tömörítés. Ezt a módszert tokenizálásnak nevezzük.
Az aritmetikai kódolás a matematikailag lehetséges legjobb
kódolás. A lényege, hogy minden byte-ot annyi bittel
helyettesítsünk, mint amennyi annak az információtartalma.
Gyakorlati jelentôsége a szörnyû lassúság miatt kicsi, de
elméleti jelentôsége nagyon nagy, mivel tudjuk, mi a határa
a tömörítésnek.
A jobb tömörítôk természetesen több tömörítési eljárást
ötvöznek. A legtöbb, ma használatos file-tömörítô egy japán
programozó, Haruhiko Okumura mûvét, az AR002 programot
veszi alapul. Ez a Lempel-Ziv módszert és a
Huffmann-módszert kombinálja. Az ARJ, az LHA, a PKZIP nem
véletlenül ér el nagyon hasonló tömörítési átlagokat,
hiszen ezek mind ennek a programnak a leszármazottai.
Elsôsorban inkább a sebesség és a különféle szolgáltatások
döntenek a programok között. A programok legelterjedtebb és
legmegbízhatóbb verziói: ARJ 2.30, PKZIP 2.04g, LHA 2.13.
Egy negyedik AR002 alapú tömörítô, a ZOO (2.10) is
elterjedt, de messze nem ennyire.
Az ARJ rengeteg szolgáltatást nyújt: többek között igen jó
szeletelést és a programjaink, irományaink több
generációjának tárolását. A szeletelés azt jelenti, hogy ha
valamilyen nagyobb anyagot lemezre archiválunk, akkor képes
a következô lemezen folytatni a tömörítést. Ebben az ARJ a
nyerô: winchesteren elkészíthetjük, tárolhatjuk a
szeleteket. A PKZIP szeletelésétôl viszont óvunk mindenkit!
Igen ám, de a PKZIP a leggyorsabb az említett három közül,
és ez nagyon erôs érv mellette. Az LHA-nak különlegessége a
kibontás után azonnal induló batch-file. Mindenképpen
javasolt mindhárom program evidenciában tartása.
Használatukra leginkább az javasolható, hogy legtöbbször a
PKZIP-pel tömörítsünk, ha feltehetôen kifér az anyag egy
lemezre (2-3 Mbyte eredeti méretig), illetve az ARJ-vel, ha
szeletelni kell.
Egy új holland tömörítôvel, az Ultra Compressor 2-vel (UC2)
ismerkedhettünk meg ez év elején. Az program 1-es verzióját
Hollandián kívül nem nagyon ismerték, sôt még ott is csak
kevesen. Az új verzió azonban különleges újdonságokat
tartalmaz, és elég gyorsan elterjedt Interneten keresztül
-- akik kíváncsiak voltak rá, egyenesen az elektronikus
postaládájukba kapták a programot.
A program legnagyobb újdonsága a ""Neuro Manager". Ez elôre
megvizsgálja a file-okat, és igyekszik valamilyen elôzetes
képet adni róluk: például a *.DOC file-ok tömörítésekor
elôre tudja, hogy ezek szövegfile-ok, milyen szavak
szerepelnek mindegyikben stb. Ez nagy újdonság azok után,
hogy a jelenlegi tömörítôk blokkonként olvasnak, és nem
tudnak semmit a következôrôl. Pedig lehetséges, hogy a
Huffman kódtáblát nem kéne kétszer tárolni, mert a
következô blokk is hasonló stb. Az UC ráadásul elôre ismeri
a programozási és az élô nyelvekben elôforduló leggyakoribb
szavakat -- ez is nagy elôny tud lenni szövegfile-ok
tömörítésekor. A Lempel-Ziv rész körülbelül kétszer olyan
messzire lát el, és sokkal hosszabb azonosságokat ismer
fel, mint az eddigi tömörítôk. Sajnos emiatt a program nem
a sebesség bajnoka, de annál inkább a tömörségé.
A program különlegessége még az hibajavító kódolás
alkalmazása. Ez olyan speciális kódolás, amely lehetôvé
teszi, hogy ha néhány byte megsérül, a file helyreállítható
legyen. Ez persze hosszabbá teszi a file-t (mintegy 1
százalékkal), de mindenképpen megéri, mert az apróbb hibákat
ezzel el tudjuk hárítani. Próbaképpen egy 1400 k-s
állomány egy teljes szektorát felülírtuk. Az UC2 kis
vacilálás után kijavította a hibát! A backup programok már
régóta alkalmaznak ilyen megoldásokat. Nincsenek annyira
elterjedve -- fôleg azért, mert ami valamilyen backuppal
lett mentve, az oda van ""drótozva": nem lehet vinyón
tárolni. Ráadásul a backup programok messze nem tömörítenek
annyira jól.
Az UC másik nagy újdonsága az, ahogyan egy cikknek vagy egy
program forrásszövegének több verzióját tárolja. Ha ezeket
normálisan becsomagoljuk, akkor nagy különbséget nem
találunk. De egy külön opcióval optimalizálás kérhetô --
ekkor döbbenetes módon kicsi lesz az újabb verziók
helyigénye. A dolog hátterében a különbségi tömörítés áll.
Logikus ilyen helyen való alkalmazása, de az eddigi
szemlélet, ami a file-ok között semmilyen kapcsolatot nem
alakított ki, nem tette lehetôvé ezt a trükköt.
Különleges csemegeként nemcsak szöveg, hanem kép vagy zene
is lehet a megjegyzés egy UC2 file-ban. Persze nem az UC
nézi/játssza le ezeket a file-okat, hanem egy batch file
hívja a megfelelô programot (GIF-nézô, MOD lejátszó stb.).
A program felhasználását könnyíti az is, hogy futtatásához
meglepôen kevés memória is elegendô -- megfelelô módon
indítva akár 32 Kbyte szabad RAM-nál is elindul. Valójában
a sok helyet foglaló programot kiteszi a tárból. Ezt eddig
is jónéhány programcsomag (például Shell Room) segítségével
meg lehetett tenni, de nem tették bele magába a tömörítô
csomagba.
A súgót nagyon kulturált módon oldották meg: a programban
magában nincsen súgó, de van benne egy szövegnézô, ami a
különbözô dokumentációkat jeleníti meg. Természetesen
elôre-hátra mozoghatunk a doksikban, az elején
kiválaszthatjuk, mely fejezetre vagyunk kíváncsiak stb.
Néha azért hiányzik az egyoldalas, tömör emlékeztetô a
szintaxisról. Sokkal jobb lenne, ha az UC paraméter nélkül
indítva egy tömör help-et adna, és csak kifejezett kérésre
állna elô az egyebekkel.
Az UC2 password védelme igen erôs, de külön programban
érkezik. Nem igazán látom értelmét ennek. Matematikailag
tényleg sokkal nehezebb feltörni az UC jelszóvédelmét, de
az eddigi (PKZIP, ARJ) védelmeket is csak próbálgatással
lehetett törni.
Mind a PKZIP, mind az ARJ megadja a regisztrált
felhasználóknak a lehetôséget, hogy programjaik
eredetiségét bizonyítsák egy biztonsági vagy eredeti
boríték segítségével. Azonban a nemzetközi
cracker-társadalom kissé megfúrta az ötletet: léteznek AV
törôk, amelyek bárki számára lehetôvé teszik, hogy például
Mcafee nevében csomagoljon be valamit. Az UC szerzôi ezt
elkerülendô egyrészt csak a regisztrált felhasználónak
adják ki azt a programot, ami ezt a borítékot -- az UC
terminológiája szerint pecsétet -- készíti. (Eddig ez a
programok szerves része volt.) Másrészt egy nagyon
biztonságos algoritmust választottak a kódolásra. A
módszer kis hibája az, hogy maga az UC nem ellenôrzi az
archív állományt, van-e rajta pecsét, hanem egy külön
program szolgál erre is. Ez némileg lerontja a módszer
hatásfokát, de még így is sokkal jobb, mint az eddigiek.
A program hátrányai közé tartozik a merev parancssor
struktúra: megszokhattuk, hogy a különbözô kapcsolókat
szinte bárhova lehet írni a parancssoron belül, itt azonban
rögzített helyük van. A program dokumentációjával
ellentétben a tesztelés azt mutatja, hogy a kitömörítésben
egyáltalán nem gyors, sôt egyenesen a leglassúbb.
Összefoglalva azt mondhatjuk: az UC nagyon ígéretes
fejlesztés, és ha majd szeletelni is tud, akkor az ARJ
nehéz helyzetbe kerül. Ugyanakkor a PKZIP-et a sebessége
miatt még sokáig nem nélkülözhetjük.
@KNégyesi Károly@N
@<9406\UC.GIF>Az Ultra Compressor új verziója több újdonságot is tartalmaz@N
@<9406\UC2.GIF>A kulturált hasznos segédeszközünk lehet@N
┌──────────────────────────────────────────────────────────┐
│ @Vùjdonságok@N │▒
│ │▒
│ Az UC2 roppant ígéretesnek tûnt már az elsô publikus │▒
│ megjelenésekor. (Amikor ezt írom, akkor tartunk a │▒
│ @Krelease 2@N béta változat tesztelésénél.) Egyre több │▒
│ ígéret válik valóra, mert sok apró, bosszantó hiba tûnt │▒
│ el a programból, és mire ez a cikk megjelenik, │▒
│ valószínûleg már egy nagyon jó szeletelési lehetôsége │▒
│ is lesz. Az érdeklôdôbbek betettek egy leírást a │▒
│ program azon kapcsolóiról és parancsairól, amelyeket │▒
│ valószínûleg csak ritkán kell használnunk. Került bele │▒
│ egy egyképernyôs összefoglaló súgó, tehát most már │▒
│ akkor is használható, ha csak az .EXE file-unk van meg. │▒
│ Sok új opciót kapott, például olyat, amivel megadható, │▒
│ hogy csak olyan file-ket csomagoljon, amelyek │▒
│ tartalmaznak egy adott stringet. Többféle formában │▒
│ képes listafile-t kreálni. │▒
│ │▒
│ ùj segédeszközök kerültek a csomagba: egy │▒
│ verziómenedzser (VM) -- az UC-nek eddig is elônye volt │▒
│ az egy file-ból több verziót egy archívba lehetôség. A │▒
│ VM azonban egészen különleges dolgokra képes: egy │▒
│ címkét ragaszthatunk a file-ok különbözô verzióira, és │▒
│ címke szerint bonthatunk ki (listázhatunk etc.). A │▒
│ címkébe kérhetjük az aznapi dátum beírását vagy azt, │▒
│ hogy hányadik verzió is ez. A címkékrôl History │▒
│ (történet) kérhetô. A másik program az UltraExpander. │▒
│ Ez egy szabadon terjeszthetô, csak kibontani tudó │▒
│ program. Az UC2 nem lesz szabadon terjeszthetô -- a │▒
│ program koncepciója a ""próbáld ki mielôtt megvennéd". │▒
└──────────────────────────────────────────────────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒